import { existsSync } from 'node:fs';
import { resolve } from 'node:path';
import { config } from 'dotenv';

/**
 * 统一的环境变量加载工具
 * 按优先级顺序加载环境变量文件
 */
export function loadEnvConfig() {
  const rootDir = process.cwd();
  const nodeEnv = process.env.NODE_ENV || 'development';

  // 定义环境变量文件加载顺序（优先级从低到高）
  const envFiles = [
    '.env', // 基础环境变量
    `.env.${nodeEnv}`, // 环境特定变量
    '.env.local', // 本地覆盖（如果存在）
    `.env.${nodeEnv}.local`, // 环境特定的本地覆盖（如果存在）
  ];

  // 按顺序加载环境变量文件
  envFiles.forEach((file) => {
    const filePath = resolve(rootDir, file);
    if (existsSync(filePath)) {
      config({ path: filePath });
      console.log(`✓ 已加载环境变量文件: ${file}`);
    }
  });
}
